Arduino Basic


By Prof. Seungchul Lee
http://iai.postech.ac.kr/
Industrial AI Lab at POSTECH

  • Please submit the following files after today's class.
    • arduino files
    • Demonstration videos of your RC car
  • TA's E-mail : juwonna7@postech.ac.kr
    • The title of your mail should be "[MECH199-01][Drone & RC Car] (Group Name) WEEK6"

Table of Contents

1. Microcontroller


  • A microcontroller (MCU for microcontroller unit, or UC for μ-controller) is a small computer on a single integrated circuit.
  • A microcontroller can acquire and process sensor data and control actuators.
  • Microcontrollers are used in automatically controlled products and devices, such as automobile engine control systems, implantable medical devices, remote controls, office machines, appliances, power tools, toys and other embedded systems.

2. Arduino


Assignment

  • Arduino IDE (Integrated Development Environment)


  • IDE is a software that provides an enviroment for program development.
  • The Arduino Software (IDE) allows you to write programs and upload them to your board.

A.1. Installation

  1. Arduino homepage : https://www.arduino.cc/en/main/software. Download Arduino IDE based on OS


  1. Install Arduino IDE



3. Arduino IDE initial screen

A.2. Overview

  • Before performing the Arduino programming, port in Arduino should match the port in Device Manager for code uploading.



- Preparing to upload a program to the arduino.


  • After writting the your own code, you should verify whether the code is correct with verify button.



  • After verification, you can upload your code with upload button.


3. Circuit

3.1. Theory

[1] Ohm's law

$$V = IR$$

$\quad V$ = Voltage (Volts) $[V]$: a force that pushes the current through the circuit.
$\quad I$ = Current (Amperes) $[A]$: the actual “substance” flowing through the wires of the circuit. (electrons)
$\quad R$ = Resistance (Ohms) $[\Omega]$: friction that impedes flow of current through the circuit.

[2] Serial / Parellel connection

  • serial connection of battery
  • parellel connection of battery
  • serial connection of resistance
  • parellel connection of resistance

Calculate current value $I_{R}$ for each resistance.


$ $
[3] Diode voltage drop

  • LED : Light Emitting Diode
  • Diode : Semiconductor componet that conducts current in one direction
    when current flow through diode, constant voltage drops. (1.5V ~ 2.0V on your LED)




Calculate minimum resistance value:

  • (a): (5V - 1.8V)/0.02A = 160Ohms
  • (b): (5V - 1.8V - 1.8V)/0.02A = 70Ohms

[4] Pull-up / Pull-down switch

  • Circuit must be colsed.
  • If a circuit is open, what voltage value would measured?
    It's not 0 V, It will be measured weired value. That is floating state.



To avoid floating state, you have to make Pull-up or Pull-down circuit.



Fortunately, Arduino offers built-in pull-up pinMode.

pinMode(pin, INPUT_PULLUP);

3.2. Precautions

4. LED Example

[1] Hardware Configuration

  • Hardware requirement
    • Arduino board
    • LED
    • 220 ohm resistor
    • hook-up wires
    • breadboard




[2] Arduino Connection



  • Before performing the Arduino programming, port in Arduino should match the port in Device Manager for code uploading.

[3] Programming



/*
  Blink
  Turns an LED on for one second, then off for one second, repeatedly.
  http://www.arduino.cc/en/Tutorial/Blink
  Thic code is slightly different with reference
*/
// The LED is connected to pin 9
int led = 9; 
// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 9 as an output.
  pinMode(led, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

[4] Code Verification and Upload



- After writting the your own code, you should verify whether the code is correct with verify button.

- After verification, you can upload your code with upload button.

[5] Code Save




4.2. Fade

  • Hardware configuration (same with LED blink example)


  • Hardware requirement
    • Arduino board
    • LED
    • 220 ohm resistor
    • hook-up wires
    • breadboard

LED fade code

/*
  Fade
  This example shows how to fade an LED on pin 9 using the analogWrite()
  function.
  The analogWrite() function uses PWM, so if you want to change the pin you're
  using, be sure to use another PWM capable pin. On most Arduino, the PWM pins
  are identified with a "~" sign, like ~3, ~5, ~6, ~9, ~10 and ~11.
*/
int led = 9;           // the PWM pin the LED is attached to
int brightness = 0;    // how bright the LED is
int fadeAmount = 5;    // how many points to fade the LED by
// the setup routine runs once when you press reset:
void setup() {
  // declare pin 9 to be an output:
  pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
  // set the brightness of pin 9:
  analogWrite(led, brightness);
  // change the brightness for next time through the loop:
  brightness = brightness + fadeAmount;
  // reverse the direction of the fading at the ends of the fade:
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }
  // wait for 30 milliseconds to see the dimming effect
  delay(30);
}

4.3. LED with switch

  • Turn on / off LED with switch

Pushbotton switch

  • Connected only while pressing (non-lock type)

4.3.1. Episode 1

  • Light on while you are pressing the switch

4.3.2. Episode 2

  • Light off while you are pressing the switch

4.3.3. Episode 3

  • Toggle LED when you turn on the switch

4.3.4. Episode 4

  • Toggle LED when you turn off the switch
In [1]:
%%javascript
$.getScript('https://kmahelona.github.io/ipython_notebook_goodies/ipython_notebook_toc.js')